A clustered storage system typically provides data storage and retrieving services. For example, a client requests access to data that is stored on the clustered storage system and the clustered storage system will respond to the request by retrieving the data for the client. The client further requests that the data be scanned for viruses prior to being retrieved. In an alternate embodiment, a system administrator sets up the system such that data is scanned for viruses prior to being retrieved. Generally, a virus is a program or a piece of code that is loaded onto a computer without a user's knowledge and may include any malicious code, program, or other internal component, that could damage, destroy, alter, or take control of, software, firmware, or hardware, or could, in any manner, reveal, damage, destroy, or alter any data or other information accessed through or processed by the computer in any manner. Accordingly, a virus represents an imminent danger to clients that utilize the data storage and retrieval services provided by a clustered storage system.
Therefore, a clustered storage system provides anti-virus scanning of files in order to prevent the loading or transmittal of viruses. Many scan requests are outstanding at once for the cluster and each of those scan requests must be serviced. A requested file may be located on a different node than the node where a scan request is initiated. The scan request may then be sent to another node in order to be serviced, which then may need to access another node in order to read the file. A client's scan request is delayed when it must be sent across several nodes in this manner because many transmissions, or “hops,” are required on the cluster network for the scan request to be serviced. Furthermore, given that a clustered storage system handles many clients at one time, many scan requests are potentially outstanding, thereby further bogging down the clustered storage system.